To solve various issues faced by Electronic Medical Record (EMR) sharing, such as centralized data provider, passive patient data management, low interoperability efficiency and malicious dissemination, a blockchain-based EMR secure sharing method was proposed. Firstly, a more secure and efficient Universal Designated Verifier Signature Proof (UDVSP) scheme based on the commercial cryptography SM2 digital signature algorithm was proposed. Then, a smart contract with functionalities of uploading, verification, retrieval and revocation was designed, and a blockchain-based EMR secure sharing system was constructed. Finally, the feasibilities of UDVSP scheme and sharing system were demonstrated through security analysis and performance analysis. The security analysis shows that the proposed UDVSP is probably secure. The performance analysis shows that compared with existing UDVSP/UDVS schemes, the proposed UDVSP scheme saves the computation cost at least 87.42% and communication overhead at least 93.75%. The prototype of blockchain smart contract further demonstrates the security and efficiency of the sharing system.